package cn.xiaopengstack.domain.activity.service;

import cn.xiaopengstack.domain.activity.model.valobj.ActivitySkuStockKeyVO;

/**
 * @author jiangyangang
 */
public interface IRaffleActivitySkuStockService {

    /**
     * 消费延迟队列里的扣减库存
     * @return
     */
    ActivitySkuStockKeyVO consumeActivitySkuStockDecrQueue() throws InterruptedException;

    /**
     * 清空队列
     */
    void clearActivitySkuStockDecrQueue(ActivitySkuStockKeyVO stockKeyVO);

    /**
     * 递减更新SKU库存
     * @param skuId
     * @param decrNumber
     */
    void updateActivitySkuStock(Long skuId, Integer decrNumber);

    /**
     * 清空SKU库存
     * @param skuId
     */
    void clearActivitySkuStockQueue(Long skuId);
}
